<?php
require_once("../lib/standard.php");
Globals::database();
Globals::diavase("lib/selida.php");

Selida::head();
Selida::stylesheet('account/account');
Selida::javascript('common/prefadoros');
Selida::javascript('account/account');
Account::setup();

Selida::body();
Selida::toolbar(FALSE);
Selida::fyi_pano();
Selida::ofelimo_open();

Account::check_pektis();
Account::forma_open();

Account::login();
Account::onoma();
Account::email();
Account::katastasi();
Account::asoi();
Account::paso();
Account::postel();
Account::plati();
Account::kodikos();
Account::kodikos1();
Account::kodikos2();
Account::profinfo_area();
Account::help();

Account::forma_close();
Account::checkin();

Selida::ofelimo_close();
Selida::fyi_kato();
Account::simetoxi();
Selida::telos();

class Account {
	private static $pektis = NULL;
	private static $max_photo_size = 500000;

	public static function check_pektis() {
		if (Globals::oxi_pektis()) return;

		self::$pektis = new Pektis(Globals::$pektis, TRUE);
		if (!isset(self::$pektis->login)) Globals::klise_fige("Ακαθόριστος παίκτης");
	}

	public static function setup() {
		?>
		<script type="text/javascript">
		//<![CDATA[
		Account.photo.maxSize = <?php print self::$max_photo_size; ?>;
		if (Client.oxiPektis()) Client.session.paraskinio = '<?php print PARASKINIO_DEFAULT; ?>';
		//]]>
		</script>
		<?php
	}

	public static function forma_open() {
		?>
		<form class="forma" method="post" action="<?php print Globals::$server;
			?>account/checkin.php" enctype="multipart/form-data" target="checkin"
			onreset="return Account.reset();" onsubmit="return Account.<?php
				print (Globals::is_pektis() ?  'enimerosi' : 'egrafi' ); ?>(this);">
		<input name="mode" type="hidden" value="<?php print Globals::is_pektis() ? "enimerosi" : "egrafi"; ?>" />
		<input name="paraskinio" type="hidden" value="<?php print Globals::is_pektis() ?
			self::$pektis->paraskinio() : PARASKINIO_DEFAULT; ?>" />
		<div id="dataArea" class="formaData">
		<table>
		<tr>
		<td class="formaHeader" colspan="2">
			<?php print Globals::is_pektis() ? "Ενημέρωση στοιχείων" : "Δημιουργία λογαριασμού"; ?>
		</td>
		</tr>
		<?php
	}

	public static function login() {
		$login_spec = 'name="login" type="text" maxlength="32" size="22" class="formaField"';
		?>
		<tr>
		<td class="formaPrompt">
			Login
		</td>
		<td>
			<?php
			if (Globals::is_pektis()) {
				// Τα disabled input fields δεν περνάνε με το submit και αυτός είναι
				// ο λόγος ύπαρξης του επιπλέον πεδίου "nigol" με το login name.
				?>
				<input <?php print $login_spec; ?> disabled="disabled" style="font-weight: bold;"
					value="<?php print Globals::$pektis; ?>" />
				<input name="nigol" type="hidden" value="<?php print Globals::$pektis; ?>" />
				<?php
			}
			else {
				?>
				<input <?php print $login_spec; ?> onkeyup="Account.clo.check(event, this);" value="" />
				<?php
			}
			?>
			<div id="tools">
				<img class="iconButton formaIconButton" src="../images/cpanel/sloot.png"
					title="Stress test" onclick="Account.test.toggle(event);" />
				<img class="iconButton formaIconButton" src="../images/misc/help.png"
					title="Οδηγίες" onclick="Account.help.toggle(event);" />
				<img class="iconButton formaIconButton" src="../images/cpanel/notes.png"
					title="Πληροφορίες προφίλ" onclick="Account.profinfo.toggle(event);" />
				<img class="iconButton formaIconButton" src="../images/misc/profinfo.png"
					title="Προεπισκόπηση προφίλ παίκτη" onclick="Account.profinfo.preview(event);" />
				<img class="iconButton formaIconButton" id="paraskinio"
					src="../images/cpanel/paraskinio.png"
					title="Παρασκήνιο" onclick="Client.paraskinio(this, this.id);" />
				<img class="iconButton formaIconButton" src="../images/misc/pliromi.png"
					title="Διαθεσιμότητα σε ώρες αιχμής" />
			</div>
		</td>
		</tr>
		<?php
	}

	public static function onoma() {
		?>
		<tr>
		<td class="formaPrompt">
			Ονοματεπώνυμο
		</td>
		<td>
			<input name="onoma" type="text" maxlength="128" size="50" class="formaField"
				value="<?php if (Globals::is_pektis()) print self::$pektis->onoma; ?>"
				onblur="Account.valid.onoma(this);" />
		</td>
		</tr>
		<?php
	}

	public static function email() {
		?>
		<tr>
		<td class="formaPrompt">
			Email
		</td>
		<td>
			<input name="email" type="text" maxlength="64" size="50" class="formaField"
				value="<?php if (Globals::is_pektis()) print self::$pektis->email; ?>"
				onblur="Account.valid.email(this);" />
		</td>
		</tr>
		<?php
	}

	public static function katastasi() {
		?>
		<tr>
		<td class="formaPrompt nobr">
			Διαθεσιμότητα
		</td>
		<td>
			<select name="katastasi" class="formaField formaSelect account_kodikos"
				title="Διαθεσιμότητα παίκτη"><?php self::katastasi_list(); ?></select>
		</td>
		</tr>
		<?php
	}

	private static function katastasi_list() {
		$katastasi = Globals::is_pektis() ? self::$pektis->katastasi() : "ΔΙΑΘΕΣΙΜΟΣ";
		if ($katastasi) {
			?><option value="<?php print $katastasi; ?>" selected="selected"><?php
				print $katastasi; ?></option><?php
		}

		$katastasi_list = array("ΑΠΑΣΧΟΛΗΜΕΝΟΣ", "ΔΙΑΘΕΣΙΜΟΣ");
		for ($i = count($katastasi_list) - 1; $i >= 0; $i--) {
			if ($katastasi_list[$i] != $katastasi) {
				?><option value="<?php print $katastasi_list[$i]; ?>"><?php
					print $katastasi_list[$i]; ?></option><?php
			}
		}
	}

	public static function asoi() {
		?>
		<tr>
		<td class="formaPrompt nobr">
			Παίζονται οι άσοι
		</td>
		<td>
			<input type="checkbox" name="asoi" <?php if ((!isset(self::$pektis)) ||
				self::$pektis->asoi()) { ?>checked="checked"<? } ?>title="Άσοι" />
		</td>
		</tr>
		<?php
	}

	public static function paso() {
		?>
		<tr>
		<td class="formaPrompt nobr">
			Παίζεται το πάσο
		</td>
		<td>
			<input type="checkbox" name="paso" <?php if (isset(self::$pektis) &&
				self::$pektis->paso()) { ?>checked="checked"<?  } ?>title="Πάσο, πάσο, πάσο" />
		</td>
		</tr>
		<?php
	}

	public static function postel() {
		?>
		<tr>
		<td class="formaPrompt nobr">
			Τελευταία διανομή
		</td>
		<td>
			<div id="postelContainer">
				<select name="postel" class="formaField formaSelect account_kodikos"
					title="Καθεστώς πληρωμής τελευταίας διανομής" />
					<?php self::postel_list(); ?></select>
				<?php Account::photo_area(); ?>
			</div>
		</td>
		</tr>
		<?php
	}

	private static function postel_list() {
		$postel = Globals::is_pektis() ? self::$pektis->postel() : "ΚΑΝΟΝΙΚΟ";
		if ($postel) {
			?><option value="<?php print $postel; ?>" selected="selected"><?php
				print $postel; ?></option><?php
		}

		$postel_list = array("ΔΙΚΑΙΟ", "ΑΝΙΣΟΡΡΟΠΟ", "ΚΑΝΟΝΙΚΟ");
		for ($i = count($postel_list) - 1; $i >= 0; $i--) {
			if ($postel_list[$i] != $postel) {
				?><option value="<?php print $postel_list[$i]; ?>"><?php
					print $postel_list[$i]; ?></option><?php
			}
		}
	}

	public static function plati() {
		?>
		<tr>
		<td class="formaPrompt nobr">
			Πλάτη παιγνιοχάρτων
		</td>
		<td>
			<select name="plati" class="formaField formaSelect account_kodikos"
				title="Χρώμα πλάτης παιγνιοχάρτων"><?php self::plati_list(); ?></select>
		</td>
		</tr>
		<?php
	}

	private static function plati_list() {
		$plati = Globals::is_pektis() ? self::$pektis->plati() : "ΜΠΛΕ";
		if ($plati) {
			?><option value="<?php print $plati; ?>" selected="selected"><?php
				print $plati; ?></option><?php
		}

		$plati_list = array("ΤΥΧΑΙΟ", "ΚΟΚΚΙΝΟ", "ΜΠΛΕ");
		for ($i = count($plati_list) - 1; $i >= 0; $i--) {
			if ($plati_list[$i] != $plati) {
				?><option value="<?php print $plati_list[$i]; ?>"><?php
					print $plati_list[$i]; ?></option><?php
			}
		}
	}

	public static function kodikos() {
		if (Globals::oxi_pektis()) return;
		?>
		<tr id="kodikos">
		<td class="formaPrompt">
			Κωδικός
		</td>
		<td>
			<?php self::kodikos_input("kodikos"); ?>
		</td>
		</tr>
		<?php
	}

	public static function kodikos1() {
		?>
		<tr>
		<td class="formaPrompt">
			<?php
			if (Globals::is_pektis()) {
				?><div id="alagiKodikou" onclick="Account.kodikos.alagi(this);">Αλλαγή κωδικού</div><?php
			}
			else {
				?>Κωδικός<?php
			}
			?>
		</td>
		<td id="kodikos1">
			<?php self::kodikos_input("kodikos1"); ?>
		</td>
		</tr>
		<?php
	}

	public static function kodikos2() {
		?>
		<tr id="kodikos2">
		<td class="formaPrompt">
			Επαναλάβατε
		</td>
		<td>
			<?php self::kodikos_input("kodikos2"); ?>
		</td>
		</tr>
		<?php
	}

	private static function kodikos_input($pedio) {
		?>
		<input name="<?php print $pedio; ?>" type="password" maxlength="50" class="formaField account_kodikos" />
		<?php
	}

	public static function forma_close() {
		?>
		</table>
		</div>
		<table class="formaPanel">
		<tr style="vertical-align: top;">
		<td>
			<input type="submit" value="<?php print Globals::is_pektis() ?
				'Ενημέρωση' : 'Εγγραφή' ; ?>" class="button formaButton" />
		</td>
		<td>
			<input type="reset" value="Επαναφορά" class="button formaButton"
				onmouseover="Client.fyi.kato('Επαναφορά αρχικών δεδομένων φόρμας');"
				onmouseout="Client.fyi.kato();" onclick="return Account.reset();" />
		</td>
		<td>
			<input type="button" value="Άκυρο" class="button formaButton"
				onmouseover="Client.fyi.kato('Έξοδος από τη φόρμα');"
				onmouseout="Client.fyi.kato();" onclick="Account.akiro();" />
		</td>
		<td style="vertical-align: middle;"><a href="#"
			onclick="return Account.simetoxi.onOff();">Εμφάνιση/απόκρυψη όρων συμμετοχής</a>
		</td>
		</tr>
		</table>
		</form>
		<?php
	}

	// Το iframe "checkin" είναι το target frame της φόρμας και εκεί θα κατευθυνθεί
	// το output του action του προγράμματος που διαχειρίζεται τα δεδομένα της φόρμας
	// ("account/checkin.php").

	public static function checkin() {
		?><iframe name="checkin"></iframe><?php
	}

	public static function profinfo_area() {
		$kimeno = Globals::is_pektis() ? self::$pektis->get_profinfo() : "";
		?>
		<div class="profinfoBox">
			<div class="profinfoHeader"></div>
			<div class="profinfoInfo profinfoInfoPektis"><?php
				print $kimeno;
			?></div>
			<div class="profinfoInfo profinfoInfoEgo"></div>
			<div class="profinfoFooter"></div>
		</div>
		<div id="profinfoEditArea" class="formaData">
			<div class="formaHeader">Πληροφορίες προφίλ</div>
			<div id="profinfoTextContainer">
				<textarea name="profinfo" type="textarea" rows="18" cols="63"><?php
					print $kimeno ?></textarea>
			</div>
			<div id="profinfoWarning">
				ΠΡΟΣΟΧΗ: Οι πληροφορίες που καταχωρείτε στο προφίλ σας είναι δημόσιες
			</div>
		</div>
		<?php
	}

	public static function help() {
		?><div id="help" class="simantiko"><?php
		if (Globals::is_pektis()) {
			Selida::simantiko_header("Ενημέρωση στοιχείων λογαριασμού");
			?><p>
			Εδώ μπορείτε να τροποιήσετε τα στοιχεία του λογαριασμού σας. Πιο συγκεκριμένα
			μπορείτε να αλλάξετε το όνομά σας, το email σας, τον κωδικό σας και τη φωτογραφία σας.
			Έχετε, επίσης, τη δυνατότητα να αλλάξετε τις πληροφορίες προφίλ στις οποίες έχουν
			πρόσβαση οι συμπαίκτες σας και όπου μπορείτε να εξηγείτε ποιος είστε και τις γενικές
			αρχές που διέπουν το παιχνίδι σας.
			</p><p>
			Μπορείτε, ακόμη, να αλλάξετε τις προτιμήσεις σας όσον αφορά στα χαρακτηριστικά
			των παρτίδων που θα παιχτούν στα τραπέζια που δημιουργείτε.
			Τέλος, μπορείτε να αλλάξετε το παρασκήνιο, το χρώμα των παιγνιοχάρτων και την
			κατάστασή σας (απασχολημένος/διαθέσιμος). Οι συγκεκριμένες αλλαγές δεν απαιτούν
			ενημέρωση, ενώ όλες οι υπόλοιπες αλλαγές απαιτούν να δώσετε τον κωδικό σας
			και να πατήσετε το πλήκτρο το ενημέρωσης.
			</p><?php
		}
		else {
			Selida::simantiko_header("Δημιουργία λογαριασμού");
			?><p>
			Επιλέξτε ένα login name και εγγραφείτε προκειμένου να μπορείτε να εισέρχεστε
			στο καφενείο της διαδικτυακής πρέφας. Εκτός από το login name σας θα πρέπει
			να δώσετε το πλήρες ονοματεπώνυμό σας (αν επιθυμείτε να διατηρήσετε την ανωνυμία
			σας μπορείτε να δώσετε εικονικά στοιχεία) και έναν κωδικό. Τα υπόλοιπα
			στοιχεία είναι προαιρετικά.
			</p></p>
			Μπορείτε, ακόμη, να καθορίσετε τις προτιμήσεις σας όσον αφορά στα χαρακτηριστικά
			των παρτίδων που θα παιχτούν στα τραπέζια που δημιουργείτε, καλό είναι όμως
			να ενημερώσετε αργότερα αυτά τα στοιχεία, εκτός και αν γνωρίζετε πλήρως τη
			σημασία τους.
			Μπορείτε, ακόμη, να καθορίσετε το παρασκήνιο, το χρώμα των παιγνιοχάρτων και την
			κατάστασή σας (απασχολημένος/διαθέσιμος).
			</p><?php
		}
		?></div><?php
	}

	private static function photo_area() {
		?>
		<div id="photoArea">
			<div id="photoMain" class="pektisMain" title="Κλικ για ενημέρωση φωτογραφίας"
				onclick="Account.photo.select();">
				<div id="photoInfo">
					Φωτογραφία<br />
					(έως <?php printf("%.0f", self::$max_photo_size / 1000); ?>kB)
				</div>
				<div class="pektisPhotoContainer"></div>
			</div>
			<div id="photoTools">
				<img id="photoDiagrafi" class="iconButton formaIconButton" src="../images/misc/Xred.png"
					title="Διαγραφή φωτογραφίας" onclick="Account.photo.diagrafi();" />
				<img id="photoEpanafora" class="iconButton formaIconButton" src="../images/velaki/undo.png"
					title="Επαναφορά" onclick="Account.photo.epanafora();" />
			</div>
			<input name="max_photo_size" type="hidden" value="<?php print self::$max_photo_size; ?>" />
			<input name="photoEnergia" type="hidden" value="" />
			<input name="photoFile" type="file" size="10" accept="image/*"
				onchange="Account.photo.change(this);" />
		</div>
		<?php
	}

	public static function simetoxi() {
		?><div id="simetoxi" class="simantiko"><?php
		Selida::simantiko_header("ΣΗΜΑΝΤΙΚΟ");
		?>Φίλοι πρεφαδόροι, πριν προχωρήσετε στην εγγραφή σας στο διαδικτυακό καφενείο
		της πρέφας, διαβάστε τους όρους εγγραφής και συμμετοχής:
		<ul><li>
			Σκοπός του ιστοτόπου είναι η διάδοση και η καλλιέργεια
			του παιχνιδιού της πρέφας και σε καμία περίπτωση
			<span class="simantikoEntono">
			δεν επιτρέπεται οποιασδήποτε μορφής τζόγος
			</span>
			στο χώρο του διαδικτυακού καφενείου της πρέφας.
			<p></p>
		</li><li>
			Οποιαδήποτε συζήτηση διεξάγεται στο χώρο του καφενείου ή σε κάποιο
			τραπέζι πρέπει να είναι κόσμια και σε καμία περίπτωση ο ιστότοπος
			<span class="simantikoEntono">
			δεν εγγυάται το απόρρητο των συζητήσεων</span> αυτών.
			Τα ίδια ισχύουν και σε ό,τι αφορά στην ανταλλαγή προσωπικών μηνυμάτων (PM).
			<p></p>
		</li><li>
			Ο ιστότοπος δεν έχει κερδοσκοπικό χαρακτήρα και
			δεν απαιτεί οποιαδήποτε τακτική συνδρομή, επομένως
			<span class="simantikoEntono">
			δεν είστε σε καμία περίπτωση υποχρεωμένοι να καταβάλετε οποιοδήποτε
			χρηματικό ποσό</span>.
			Βεβαίως, μπορείτε να συνεισφέρετε στα έξοδα του
			ιστοτόπου, υπό μορφήν δωρεάς και μόνο εφόσον το επιθυμείτε.
		</li></ul>
		Εφόσον κατανοείτε και αποδέχεστε τους παραπάνω όρους μπορείτε να
		προχωρήσετε στην εγγραφή σας στο διαδικτυακό καφενείο της πρέφας.
		Καλή διασκέδαση!
		</div><?php
	}
}
?>
